<?php
/**
 * Smart Library - Smart Framework
 * http://smart-framework.highet.eu
 *
 * @category   SmartL
 * @package    SmartL_Application
 * @subpackage Config
 * @copyright  Copyright (c) 2005-2008 Smart Framework team - Stepan Sindelar, Vojtech Vit
 * @license    http://www.opensource.org/licenses/bsd-license.php	New BSD License
 */

/**
 * @todo 8 : (?) Není lepší sem rovnou nastrčit Zendovský Request objekt..?
 * Pozn: Tohle je jen info o tom, kam se má přesměrovat... Možná tedy stojí za to
 * zvážit, jestli to nebude lepsi prejmenovat.
 *
 * @todo 23: Předělat podle vzoru "hodnotový typ - neměnná"
 *
 * Holds informations about request: controller and action names.
 *
 * @since Version 2.0RC added support for parameters,
 * because this "messenger" object is used also in
 * SmartL_Zend_Controller_Router_UrlTable_DataAdapter_Interface
 *
 * @package SmartL_Application
 * @subpackage Config
 */
class SmartL_Application_Config_RequestInfo {
	private $_module = null;
	private $_controller = null;
	private $_action = null;
	private $_params = null;
	
	public function __construct($module = '', $controller = '', $action = '', $params = array()) {
		$this->_module = $module;
		$this->_controller = $controller;
		$this->_action = $action;
		$this->_params = $params;
	}
	
	public function getParams() {
		return $this->_params;
	}
	
	public function setParams(array $params) {
		$this->_params = $params;
	}
	
	/**
	 * Returns requested module name.
	 *
	 * @return string Requested module name
	 */
	public function getModule() {
		return $this->_module;
	}
	/**
	 * Sets requested module name.
	 *
	 * @param string $value New requested module name
	 */
	public function setModule($value) {
		$this->_module = $value;
	}
	/**
	 * Returns requested controller name.
	 *
	 * @return string Requested controller name
	 */
	public function getController() {
		return $this->_controller;
	}
	/**
	 * Sets requested controller name.
	 *
	 * @param string $value New requested controller name
	 */
	public function setController($value) {
		$this->_controller = $value;
	}
	/**
	 * Returns requested action name.
	 *
	 * @return string Requested action name
	 */
	public function getAction() {
		return $this->_action;
	}
	/**
	 * Sets requested action name.
	 *
	 * @param string $value New requested action name
	 */
	public function setAction($value) {
		$this->_action = $value;
	}
}